The learning goals for Week 48 are:
Versioning. Messaging.
Literature:
Slides:
Notes for this weekplan:
Exercise 'change-rest-api'
Introduce a 'breaking change' of your choosing in your group's REST service API, and follow the guidelines of Nygard (the 4-5 principles outlined in my 'W13-1 Versioning' slides) to roll out the change.
A 'breaking change' may be the relevant issue of adding correlation ID s to messages. Start by just adding an extra 'correlationId: long-uuid' dummy key-value to the POST message of your REST service.
While a full implementation is a large endevour, you may start by discussion the design implications and review the code that needs to be changed, ala 'where is the translation pipeline going to be', etc.
Exercise 'testing-change-rest-api'
Try out the Nygard testing paradigm for API version change validation, that is, splitting into 'request' and 'response' side testing.
Exercise 'rabbitmq-broker'
Rewrite the FRDS.Broker's ClientRequestHandler and ServerRequestHandler used in SkyCave cmd-daemon communication to a RabbitMQ based connection. Most of the code can actually be copied more or less verbatim from the RabbitMQ's Java RPC tutorial (hit 'get started', then 'tutorials', and find the RPCClient.java and RPCServer.java source code), so the exercise is less demanding than it seems.